// CSmalltalk.C
#include "CSmalltalk.h"
int main(int argc, const char**argv) {
    registeExcept(caught);
	EXPTRY(C57Exp,Exp) {
		C57LOG("[@CSmalltalk launch] CSmalltalk Launch.%s","\r\n");
		CSmalltalk c57vm = { 
		  .rcode=malloc_string("\
(Functional main:\
  (Wing constructBy: 'furry\\'s fur' | '18cm*');\
  (Bird build: class | happy: (second method: call));\
)."),
		  .limit=detect,
		};
	//	if(argc>1&&!strcmp(argv[1], "feeding~")) {
	    do {
			printf("\033[7m\n      /\\ __/\\      \n");
			printf("🌺   / _   _   \\    \n");
			printf("\033[4m(ξ)|____∇__\033[101m“\033[0m\033[4m\033[7m__(_)  \n");
			printf("    CSmalltalk     \n\n\033[0m");
		} while(0);
	  assert(
		flint() & parse(&c57vm) & NeutralInt(&c57vm)   );
		C57LOG("\r\n");
		C57LOG("[@CSmalltalk logout] EXIT 0.%s","\r\n");
		return 0;
	} CATCH(Exp,NOENOUGH_MEM) {
		C57LOG("[@CSmalltalk logout] No enough memory.%s","\r\n");
	} CATCH(Exp,UNKNOWN) {
		C57LOG("[@CSmalltalk logout] For some unkown reason(s), the program had been logout.%s","\r\n");
	} CATCH(Exp,PROGRAM_ABORT) {
		C57LOG("[@CSmalltalk logout] Program abort.%s","\r\n");
	} FINALLY() {
		C57LOG("[@CSmalltalk logout] EXIT -1.%s","\r\n");
	}
	return -1;
}
